package fr.inria.phoenix.scenario.bwsnfirefighting.framework.distributed.server;

import fr.inria.diagen.core.ServiceConfiguration;
import fr.inria.diagen.core.server.local.ServicesHierarchy;

public class Server extends fr.inria.diagen.core.server.local.Server {
  public Server(ServiceConfiguration serviceConfiguration) {
    super(serviceConfiguration, GeneratedFramework.getInstance());
  }
  
  @Override
  protected ServicesHierarchy buildHierarchy() {
    ServicesHierarchy service = new ServicesHierarchy("Service");
    ServicesHierarchy sound = new ServicesHierarchy("Sound");
    ServicesHierarchy environmentSensorDevice = new ServicesHierarchy("EnvironmentSensorDevice");
    ServicesHierarchy statusDetection = new ServicesHierarchy("StatusDetection");
    ServicesHierarchy manualButton = new ServicesHierarchy("ManualButton");
    ServicesHierarchy logManager = new ServicesHierarchy("LogManager");
    ServicesHierarchy light = new ServicesHierarchy("Light");
    ServicesHierarchy locatedDevice = new ServicesHierarchy("LocatedDevice");
    ServicesHierarchy alarmManager = new ServicesHierarchy("AlarmManager");
    ServicesHierarchy alertDetection = new ServicesHierarchy("AlertDetection");
    ServicesHierarchy messageManager = new ServicesHierarchy("MessageManager");
    ServicesHierarchy temperatureDetection = new ServicesHierarchy("TemperatureDetection");
    ServicesHierarchy sprinkler = new ServicesHierarchy("Sprinkler");
    ServicesHierarchy buildingAlertDetection = new ServicesHierarchy("BuildingAlertDetection");
    ServicesHierarchy smokeDetection = new ServicesHierarchy("SmokeDetection");

    service.add(sound);
  locatedDevice.add(environmentSensorDevice);
    service.add(statusDetection);
  locatedDevice.add(manualButton);
    service.add(logManager);
    service.add(light);
    service.add(locatedDevice);
    service.add(alarmManager);
    service.add(alertDetection);
    service.add(messageManager);
    service.add(temperatureDetection);
  locatedDevice.add(sprinkler);
    service.add(buildingAlertDetection);
    service.add(smokeDetection);


    return service;
  }
}